`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2020/11/11 11:41:01
// Design Name: 
// Module Name: divider_2hz
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////

module divider_2hz(
    input clk_i,  // 100MHz clock input
    input rst_i,  // highpos reset
    output reg out  // 2Hz clock output
    );

    parameter cnt_max = 32'd50000000;
    parameter cnt_half = 32'd25000000;
    reg [31:0] cnt = 32'b0;

    always@ (posedge clk_i or posedge rst_i) begin
        if (rst_i == 1'b1) begin
            cnt <= 32'h0;
        end else begin
            cnt <= (cnt>=cnt_max) ? 32'h0 : (cnt+1);
        end

        out <= (cnt>=cnt_half) ? 1'b1 : 1'b0;
    end
endmodule
